<?php 

include("MainImport.php");

class BD
{
   private static $instancia;
   private $coneccion;

   private function __construct()
   {
   	  $this->coneccion = new Connection("localhost", "root", "", "usb");
   }

   public static function getBD()
   {
      if (  !self::$instancia instanceof self)
      {
         self::$instancia = new self;
      }
      return self::$instancia;
   }
   
   
   
   //Metodos de Instancia:
   
   public function getEnteGub($ubicacion)
   {
	$sql = "SELECT * From `ente_ayuda_en` JOIN `ente_gub` ON (`id` = `ente_gub_id`)  WHERE (\"$ubicacion\" = `estado`)";
    
    $result =  $this->coneccion->ejecutar($sql);
    
    $enteFech = mysql_fetch_array($result);

	
	$ente = new EnteGubernemental($enteFech["id"], $enteFech["estado"], $enteFech["correo"], $enteFech["nombre"]);	
			
	return $ente; 	
		
   }
   
   public function getListaPalabras(){
       $sql = "SELECT * From `palabra`";
    
        $result =  $this->coneccion->ejecutar($sql);
        
        $lista = array();
        
        while ($row = mysql_fetch_array($result)) {
             $lista[] = $row[0];
        }
        
       return $lista;
   }
   
   public function salvarEnte($nombre, $correo)
   {

	$sql = "INSERT $nombre, $correo INTO `ente_gub` (id, nombre, correo)VALUES (null, $nombre, $correo)";

    $this->coneccion->ejecutar($sql);
	
		
   }
   
   public function salvarReporte($descripcion, $fecha, $ubicacion, $userId)
   {

    $sql = "INSERT INTO `reporte` (`id`, `descripcion`, `fecha`, `estado`, `usuario_id`) VALUES (NULL, '$descripcion', '$fecha', '$ubicacion', $userId)";

    $this->coneccion->ejecutar($sql);
    
        
   }
   
      public function getUser($nombre)
   {
		
	$sql = "SELECT * FROM  `usuario` WHERE  `nombre` =  \"$nombre\"";

	$result =  $this->coneccion->ejecutar($sql);
    
    $usuarioFetch = mysql_fetch_array($result);
    
    $usuario = new Usuario($usuarioFetch["id"], $usuarioFetch["nombre"], $usuarioFetch["telefono"], $usuarioFetch["correo"]);
			
	return $usuario;  
		
		
   }
   
   public function getArrayEstados()
   {
        $sql = "SELECT * FROM  `estado`";
    
        $result =  $this->coneccion->ejecutar($sql);
        
        $ArrayEstado = array();
                
        while ($estado = mysql_fetch_array($result)) {
            $ArrayEstado[] = $estado["nombre"];
        }
        
        return $ArrayEstado; 
   }
   
   //Proteccion del patron Singlenton:
   
   public function __clone()
   {
      trigger_error("Operación Invalida: No puedes clonar una instancia de ". get_class($this) ." class.", E_USER_ERROR );
   }
   
   
   public function __wakeup()
   {
      trigger_error("No puedes deserializar una instancia de ". get_class($this) ." class.");
   }
   
   
   public function __sleep()
   {
      trigger_error("No puedes serializar una instancia de ". get_class($this) ." class.");
   }
}
?>